name: Build And Deploy on: push: branches: - main jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Install dependencies run: | apt-get update && apt-get install gettext -y - name: Check out repository uses: actions/checkout@v4 # - name: Expose repo secrets and vars as shell variables # env: # SECRETS_CONTEXT: ${{ toJSON(secrets) }} # VARS_CONTEXT: ${{ toJSON(vars) }} # run: | # # https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable # # https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings # # # EOF randomness is to account for empty secrets and vars # EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) # to_envs() { jq -r "to_entries[] | \"\(.key)<<$EOF\n\(.value)\n$EOF\n\""; } # echo "$VARS_CONTEXT" | to_envs >> $GITHUB_ENV # echo "$SECRETS_CONTEXT" | to_envs >> $GITHUB_ENV - name: Substitute environment variables in .env.example and write to .env env: CERTBOT_EMAIL: ${{secrets.CERTBOT_EMAIL}} CLOUDFLARE_API_TOKEN: ${{secrets.CLOUDFLARE_API_TOKEN}} DOMAIN: ${{secrets.DOMAIN}} PUBLIC_IP: ${{secrets.PUBLIC_IP}} ANDROID_SMS_GATEWAY_IP: ${{secrets.ANDROID_SMS_GATEWAY_IP}} ANDROID_SMS_GATEWAY_URL: ${{secrets.ANDROID_SMS_GATEWAY_URL}} ANDROID_SMS_GATEWAY_LOGIN: ${{secrets.ANDROID_SMS_GATEWAY_LOGIN}} ANDROID_SMS_GATEWAY_PASSWORD: ${{secrets.ANDROID_SMS_GATEWAY_PASSWORD}} ANDROID_SMS_GATEWAY_RECIPIENT_PHONE: ${{secrets.ANDROID_SMS_GATEWAY_RECIPIENT_PHONE}} ASTRO_DB_REMOTE_URL: ${{secrets.ASTRO_DB_REMOTE_URL}} OTP_SUPER_SECRET_SALT: ${{secrets.OTP_SUPER_SECRET_SALT}} IMAGE_FILENAME: ${{secrets.IMAGE_FILENAME}} IMAGE_NAME: ${{secrets.IMAGE_NAME}} SSH_USER: ${{secrets.SSH_USER}} SSH_PORT: ${{secrets.SSH_PORT}} SSH_HOST: ${{secrets.SSH_HOST}} SSH_KEY: ${{secrets.SSH_KEY}} SSH_KNOWN_HOST: ${{secrets.SSH_KNOWN_HOST}} run: | envsubst < .env.example > .env - name: Run build script run: | cd cicd/scripts chmod +x ./build.sh ./build.sh - name: Run deploy script run: | cd cicd/scripts chmod +x ./deploy.sh ./deploy.sh