-
Notifications
You must be signed in to change notification settings - Fork 1
94 lines (94 loc) · 3.08 KB
/
deploy-sigpwny.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
name: CI/CD (sigpwny.com)
on:
push:
paths:
- '_global/**'
- '.github/**'
- '!.github/workflows/scheduled-pings.yml'
- 'sigpwny.com/**'
- 'guides'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CI: true
CI_WORKING_DIR: sigpwny.com
CI_BUILD_DIR: dist
CI_CACHE_DIR: .cache
jobs:
deploy:
name: Deploy (sigpwny.com)
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Build pwnyctf mdbook
uses: ./.github/actions/build-mdbook
with:
book-directory: pwnyctf
- name: Build site
uses: ./.github/actions/build-astro
with:
working-directory: ${{ env.CI_WORKING_DIR }}
build-directory: ${{ env.CI_BUILD_DIR }}
cache-directory: ${{ env.CI_CACHE_DIR }}
- name: Deploy to Cloudflare Pages
if: github.actor != 'dependabot[bot]'
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CLOUDFLARE_PAGES_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: ${{ vars.CLOUDFLARE_PROJECT_NAME_SIGPWNY }}
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
workingDirectory: ${{ env.CI_WORKING_DIR }}
directory: ${{ env.CI_BUILD_DIR }}
- name: (On main) Sync Discord events
if: github.ref_name == github.event.repository.default_branch
# https://github.com/nodejs/node/issues/50993
run: touch .env && npm run sync-discord
shell: bash
working-directory: ${{ env.CI_WORKING_DIR }}
env:
DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }}
DISCORD_SERVER_ID: ${{ secrets.DISCORD_SERVER_ID }}
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: ${{ env.CI_WORKING_DIR }}/${{ env.CI_BUILD_DIR }}
schedule-notify:
name: Schedule notifications (sigpwny.com)
if: github.ref_name == github.event.repository.default_branch
needs: deploy
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
token: ${{ secrets.WORKFLOW_PAT }}
submodules: true
fetch-depth: 0
- name: Initialize Astro and dependencies
uses: ./.github/actions/build-astro
with:
working-directory: ${{ env.CI_WORKING_DIR }}
build-directory: ${{ env.CI_BUILD_DIR }}
cache-directory: ${{ env.CI_CACHE_DIR }}
skip-build: true
- name: Schedule Discord pings
run: npm run schedule-discord-ping
shell: bash
working-directory: ${{ env.CI_WORKING_DIR }}
- name: Save scheduled Discord pings
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "chore: update workflow schedule"
file_pattern: "*.yml"